|
Fundamental AlgorithmsCSc I0600–Fall 2021 |
The City College of CUNY Department of Computer Science |
Instructor:
Prof. Nelly Fazio
Lectures: Wednesday, 4:50pm–7:20pm, Online
Office hours: Thursdays, 11:00am–12:00pm (and by
appointment), Online
Email: fazio AT cs DOT ccny DOT cuny DOT edu
[Put CScI0600 in Subject line]
[ Course Description | List of Topics | Textbook | Work Load & Grading | CUNY Academic Integrity Policy | Assignments | Weekly Schedule ]
Prerequisites: CSc 220.
| Lecture | Topic | Readings |
| 1 | Overview. Growth of functions. Asymptotic
notation. InsertionSort. Divide-and-Conquer. Examples. MergeSort. |
CLRS 1–3 Review CLRS 10, 11, 12 |
| 2 | Solving recurrence: Recursion-tree method. Examples. More on Divide-and-Conquer: Maximum Subarray. Matrix multiplication. |
CLRS 4.1–4.2, 4.4. Review Appendix A |
| 3 | Solving recurrences: Substitution method. Examples. Solving recurrences: Master method. Examples. |
CLRS 4.3, 4.5 |
| 4 | Sorting Algorithms: Heapsort. | CLRS 6 |
| 5 | Sorting Algorithms: Quicksort. | CLRS 7 |
| 6 | More on sorting: Lower bound and beyond. |
CLRS 8 |
| 7 | Balanced Search Trees: B-Trees. | CLRS 18 |
| 8 | Dynamic Programming (I). Example: Rod Cutting. | CLRS 15 |
| 9 | Dynamic Programming (II). Example: Longest Common Subsequence. | CLRS 15 |
| 10 | Midterm Exam. (Nov. 3) | |
| 11 | Greedy Algorithms. Huffman Codes. | CLRS 16 |
| 12 | Graphs. BFS and DFS. Topological Sort. SCC. | CLRS 22 |
| 13 | Minimum Spanning Trees. | CLRS 23 |
| 14 | Shortest Paths: Bellman-Ford algorithm. Single-Source Shortest Paths for DAGs + Dijkstra. All-Pairs Shortest Paths: Floyd-Warshall. |
CLRS 24, 25 |
| Final Exam, Dec 15, 2021, 5:00-7:20pm |
Copyright © Nelly Fazio